Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>HMAC-based one-time password</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/HMAC-based_one-time_password"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-HMAC-based_one-time_password rootpage-HMAC-based_one-time_password skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">HMAC-based one-time password</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>HMAC-based one-time password</b> (<b>HOTP</b>) ist ein Verfahren zur Erzeugung von <a href="Einmalkennwort" title="Einmalkennwort">Einmalkennwörtern</a> basierend auf dem <a href="Keyed-Hash_Message_Authentication_Code" class="mw-redirect" title="Keyed-Hash Message Authentication Code">Keyed-Hash Message Authentication Code</a> (HMAC), welcher im Rahmen der <a href="Authentifizierung" title="Authentifizierung">Authentifizierung</a> Anwendung findet. Das Verfahren wurde von der <a href="Initiative_For_Open_Authentication" title="Initiative For Open Authentication">Initiative For Open Authentication</a> (OATH) entwickelt und im Rahmen der <a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">Internet Engineering Task Force</a> (IETF) im Dezember 2005 als RFC&nbsp;4226 veröffentlicht.<sup id="cite_ref-RFC4226_1-0" class="reference"><a href="#cite_note-RFC4226-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Das Verfahren zählt zu den <a href="Einmalkennwort#Ereignisgesteuert_(HOTP)" title="Einmalkennwort">ereignisgesteuerten</a> Kennwortverfahren und findet beispielsweise im Rahmen der Authentifizierung bei der Anmeldung von einem Benutzer (Sender) bei einem Validierungsserver (Empfänger) Anwendung. In praktischen Anwendungen wie dem Internet hat sich HOTP nur in Randbereichen durchgesetzt und es wird üblicherweise das auf HOTP aufbauende Verfahren <a href="Time-based_one-time_password" title="Time-based one-time password">Time-based one-time password</a> (TOTP) verwendet.
</p>

<div class="mw-heading mw-heading2"><h2 id="Verfahren">Verfahren</h2></div>
<p>Das Verfahren basiert im Kern auf einer <a href="Kryptologische_Hash-Funktion" class="mw-redirect" title="Kryptologische Hash-Funktion">kryptografischen Hash-Funktion</a> (HMAC), mit deren Hilfe aus dem zwischen Sender und Empfänger vereinbarten und geheimen Schlüssel <i>K</i> und einen zwischen Sender und Empfänger synchronen Zähler <i>C</i> ein kryptografischer Hash-Wert berechnet wird. Der Zähler wird bei jeder Authentifizierung auf beiden Seiten, sowohl bei dem Sender als auch beim Empfänger, inkrementiert und ergibt damit bei jedem Aufruf ein unterschiedliches, vom geheimen Schlüssel abhängiges Einmalkennwort.
</p><p>Zur Berechnung können im Rahmen des Verfahrens verschiedene kryptografische Hash-Funktionen eingesetzt werden wie beispielsweise <a href="Secure_Hash_Algorithm#SHA-1" title="Secure Hash Algorithm">SHA-1</a> oder auch die sicheren Verfahren aus der Gruppe <a href="SHA-2" title="SHA-2">SHA-2</a> wie beispielsweise <a href="SHA-512" class="mw-redirect" title="SHA-512">SHA-512</a>. Der so berechnete Hash-Wert wird auf eine Länge von 31 Bit abgeschnitten und daraus dann durch <a href="Modulo" class="mw-redirect" title="Modulo">modulo</a> 10<sup>d</sup>, mit d=6 oder d=8 für sechs oder acht Stellen, das eigentliche Einmalpasswort gebildet.
</p><p>Das Verfahren ist ein <a href="Offener_Standard" title="Offener Standard">offener Standard</a> und frei von Patenten.
</p>
<div class="mw-heading mw-heading2"><h2 id="Anwendungen">Anwendungen</h2></div>
<p>Der praktische Nachteil des ereignisgesteuerten Verfahrens HOTP im Rahmen der Authentifizierung bei der Anmeldung von einem Benutzer (Sender) bei einem Server (Empfänger) besteht in dem Umstand, dass der zwischen Sender und Empfänger synchron zu haltende Zähler <i>C</i> bei der Initialisierung synchronisiert wird und danach ohne erfolgreiche Validierung keine weitere Synchronisierung im Verfahren vorgesehen ist.
</p><p>Bei jeder Code-Generierung seitens Benutzer (Sender) zählt sein Zähler um eins hoch, beim Server (Empfänger) erfolgt das Weiterzählen nur bei einer erfolgreichen Validierung. Erzeugt nun der Benutzer auf seinen Token (Codegenerator) mehrere Codes ohne diese zum erfolgreichen Validieren am Validierungsserver zu verwenden, wird sein Zähler immer weiter gezählt, während der Zählerstand am Validierungsserver gleich bleibt und die beiden Zähler damit auseinander laufen. Ungleiche Zählerstände bedeuten aber, dass die Validierung fehl schlägt.
</p><p>Um diesen störenden Seiteneffekt des zählerbasierenden Verfahren etwas zu mindern wird am Server eine bestimmte Anzahl von zusätzlichen Zählerständen über den aktuellen Zählerstand hinaus akzeptiert. Dieses Intervall an zulässigen Codes wird als <i>Validierungsfenster</i> bezeichnet. Bei einer erfolgreichen Validierung am Server innerhalb des Validierungsfensters passt der Server seinen Zählerstand darauf an, zählt also unter Umständen seinen Zählerstände um ein Vielfaches weiter. Liegt der erzeugte HOTP-Code ausserhalb des Valdidierungsfensters ist der Zugang dauerhaft gesperrt da keine erfolgreiche Validierung und damit Angelich der Zählerstände mehr möglich ist und die Authentifizierung muss neu eingerichtet werden.
</p><p>Wird dieses Validierungsfenster zu klein gewählt, können nur durch einige wenige Codegenerierungen ohne erfolgreiche Validierung der Zugang dauerhaft verunmöglicht werden. Ist hingegen das Validierungsfenster zu groß gewählt, besteht das Problem, dass dann viele Ziffernfolgen, welche den unterschiedlichen Zählerständen innerhalb dieses Fensters entsprechen, gültig sind. Ein zu großes Validierungsfenster steigert damit die Wahrscheinlichkeit durch Ausprobieren von zufälligen Ziffernfolgen, um damit unberechtigten Zugang zu erlangen.
</p><p>Der Nachfolger TOTP vermeidet dieses Problem der auseinander laufenden Zählerstände zwischen Sender und Empfänger und verwendet statt einen Zähler die absolute Uhrzeit, welche auf beiden Seiten, Sender und Empfänger hinreichend genau vorhanden sein muss. Zwar existiert auch bei TOTP ein Validierungsfenster, um die Ungeauigkeiten der Uhrzeiten zwischen den Systemen von Sender und Empfänger zu kompensieren, dieses Validierungsfenster von TOTP kann bei hineichend genauen Uhren bis auf einige wenige Einmalcodes (+/- 1 bis 2 TOTP Codes um die aktuelle Uhrzeit herum) reduziert werden. Der Benutzer kann bei TOTP beliebig viele TOTP-Codes in seinen Codegenerator erzeugen und diese in Folge nicht verwenden, ohne dabei Gefahr zu laufen, dadurch seinen Zugang bzw. die Validierungsmöglichkeit am Server zu verlieren.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://openauthentication.org/">openauthentication.org</a> – Initiative For Open Authentication.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-RFC4226-1"><span class="mw-cite-backlink"><a href="#cite_ref-RFC4226_1-0">↑</a></span> <span class="reference-text">
<i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc4226" class="extiw external" title="rfc:4226">4226</a></span></i>&nbsp;– <i><span lang="en">HOTP: HMAC-based One-time Password Algorithm</span></i>. (englisch).</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2026-01-03" href="https://de.wikipedia.org/wiki/?title=HMAC-based_one-time_password&amp;oldid=262981677">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>